﻿//-----------------------------------------------------------------------
// <copyright file="IKeyboardStateProvider.cs" author="Artak Mkrtchyan">
//     Creative Commons - GNU General Public License (http://creativecommons.org/licenses/GPL/2.0/
// </copyright>
// <author>Artak Mkrtchyan</author>
// <email>mkArtak@gmail.com</email>
// <date>24/01/2013</date>
//-----------------------------------------------------------------------
using System.Collections.Generic;
using System.Windows.Input;

namespace ConsoleHoster.Common.UserInput
{
	/// <summary>
	/// Represents a contract for notifications about Keyboard inputs and information on state
	/// </summary>
	public interface IKeyboardStateProvider
	{
		bool IsKeyDown(Key argKey);

		bool AnyOfKeysDown(Key argKey1, Key argKey2, params Key[] argAdditionalKeys);

		bool AnyOfKeysDown(IEnumerable<Key> argKeys);

		bool AllKeysDown(Key argKey1, Key argKey2, params Key[] argAdditionalKeys);

		bool AllKeysDown(IEnumerable<Key> argKeys);
	}
}
